﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using popLib.ExtensionClass;

namespace popLib.ModelSystem
{
    public partial class UpdatePassword : Form
    {
        FormValidation validator;
        public UpdatePassword()
        {
            InitializeComponent();

            this.Icon = MainFormModel.Instance.AppIconSmall;

            //init form validation
            validator = new FormValidation(this);
            validator.ValidateText(Matkhau, true, 3, -1);
            validator.ValidateText(MatKhauMoi, true, 3, -1);
            validator.ValidateText(MatKhauMoi1, true, 3, -1);            

            //fill user's detail
            TenNhanVien.Text = MainFormModel.Instance.CurrentUser.Fullname;
            TenDangNhap.Text = MainFormModel.Instance.CurrentUser.Username;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (!validator.Validate()) return;
            else if (MatKhauMoi.Text.Trim() != MatKhauMoi1.Text.Trim())
            {
                validator.SetError(MatKhauMoi, "Mật khẩu mới và Nhập lại mật khẩu mới không trùng khớp");
                validator.SetError(MatKhauMoi1, "Mật khẩu mới và Nhập lại mật khẩu mới không trùng khớp");
                return;
            }

            validator.SetError(MatKhauMoi, null);
            validator.SetError(MatKhauMoi1, null);

            ReturnSet rs = MainFormModel.Instance.ChangePasswordFunction(TenDangNhap.Text.Trim(), Matkhau.Text.Trim(), MatKhauMoi.Text.Trim());
            if (rs.Success)
            {
                MainFormModel.Instance.CurrentUser = (UserAccount)rs.Result;                
                Global.FormMessage(Global.FormMessageType.UpdateSuccess, "mật khẩu");
                this.Close();
            }
            else
            {
                Global.FormMessage(Global.FormMessageType.UpdateFail, "mật khẩu", null, (Global.DBErrorType)rs.Result);
            }
        }
    }
}
